#pragma once

#define  KNIFE_DEVICE_TYPE				0x8000
#define  KNIFE_FUNCTION_CODE_BASE		0x800

#define  CTL_CODE_KNIFE(i)  CTL_CODE( KNIFE_DEVICE_TYPE, KNIFE_FUNCTION_CODE_BASE+i, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define  IOCTL_KNIFE_ENUM_PROCESSES_NATIVEAPI	CTL_CODE_KNIFE(0)
#define  IOCTL_KNIFE_TERMINATE_PROCESS_BYAPC	CTL_CODE_KNIFE(1)
#define  IOCTL_KNIFE_HIDE_PROCESS_BYACTIVELIST	CTL_CODE_KNIFE(2)
#define  IOCTL_KNIFE_ENUM_PROCESS_THREADS		CTL_CODE_KNIFE(3)
#define  IOCTL_KNIFE_ENUM_PROCESS_MODULES		CTL_CODE_KNIFE(4)
#define  IOCTL_KNIFE_HIDE_MODULE_BYPEB			CTL_CODE_KNIFE(5)
#define  IOCTL_KNIFE_ENUM_PROCESS_OBJECTS		CTL_CODE_KNIFE(6)
#define  IOCTL_KNIFE_CLOSE_OBJECT				CTL_CODE_KNIFE(7)
#define  IOCTL_KNIFE_ENUM_SYSMODULES			CTL_CODE_KNIFE(8)
#define  IOCTL_KNIFE_ENUM_SSDT					CTL_CODE_KNIFE(9)